package com.dhcc.DRGsHosp.facade;

import java.util.Map;

import org.openkoala.koala.commons.InvokeResult;

import com.dhcc.DRGsHosp.facade.dto.IndexCalDTO;
import com.dhcc.DRGsHosp.facade.dto.SizerConditionDTO;


/**
 * @title		:SpecialMonitorFacade.java
 * @description	:专科建设指标监测
 * @author		:lileizheng
 * @date		:2016年3月4日
 * @version     :1.0
 * @copyright   :DHCC 2013-2014 
 */
public interface SpecialMonitorFacade {

	/**
	 * @methodname    :monitor
	 * @description   :专科建设指标监测方法
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年3月4日
	 */
	public InvokeResult getSpecTotalScore(IndexCalDTO dto);

	/**
	 * @methodname    :getCMITotalWeightRatio
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年3月18日
	 */
	public InvokeResult getCMITotalWeightRatio(IndexCalDTO dto);

	/**
	 * @methodname    :getAnalysisQuotas
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年3月21日
	 */
	public InvokeResult getAnalysisQuotas(IndexCalDTO dto);

	/**
	 * @methodname    :getAnalysisQuotasAndJizhunzhi
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年3月22日
	 */
	public InvokeResult getAnalysisQuotasAndJizhunzhi(IndexCalDTO dto);
	/**
	 * @methodname    :getGukeData
	 * @description   : 
	 * @param         :
	 * @author        :wangconghui
	 * @return        :
	 * @date          :2016年3月24日
	 */
	public InvokeResult getGukeData(IndexCalDTO dto);
	/**
	 * @methodname    :getWeightInter
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年3月23日
	 */
	public InvokeResult getWeightInter(IndexCalDTO dto);

	/**
	 * @methodname    :getWeightInterDeps
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年3月30日
	 */
	public InvokeResult getWeightInterDeps(IndexCalDTO dto, String weightInter);

	/**
	 * @methodname    :getDepsQuotas
	 * @description   : 科室指标
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年3月31日
	 */
	public InvokeResult getDepsQuotas(IndexCalDTO dto);

	/**
	 * @methodname    :getDRGsQuotas
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年4月1日
	 */
	InvokeResult getDRGsQuotas(IndexCalDTO dto, String weightInter);

	/**
	 * @methodname    :getDepsDRGs
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年4月5日
	 */
	public InvokeResult getDepsDRGs(IndexCalDTO dto);

	/**
	 * @methodname    :getSpecialData
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年4月5日
	 */
	public InvokeResult getSpecialData(IndexCalDTO dto);

	/**
	 * @methodname    :getNotInDRGs
	 * @description   :专业为覆盖DRGs列表
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年4月6日
	 */
	public InvokeResult getNotInDRGs(IndexCalDTO dto);

	/**
	 * @methodname    :getSpecialTrendData
	 * @description   :专科半年度变化趋势
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年4月10日
	 */
	InvokeResult getSpecialTrendData(IndexCalDTO dto);

	/**
	 * @methodname    :getTimeFeeLowDRGs
	 * @description   :类型二中时间效率和费用效率低的DRGs
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年4月10日
	 */
	InvokeResult getTimeFeeLowDRGs(IndexCalDTO dto);
	
	/**
	 * 
	 *  loadCaseDistributeData.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param dto
	 * @param intervalParam 
	 *  @return 
	 *  @Date:2017年12月4日下午5:31:01
	 */
	public InvokeResult loadCaseDistributeData(IndexCalDTO dto, String[] intervalParam);
	/**
	 *  保存病例分布查询参数
	 *  saveIntervalParam.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param sc
	 *  @return 
	 *  @Date:2017年12月6日下午2:12:32
	 */
	public InvokeResult saveIntervalParam(SizerConditionDTO sc);
	/**
	 *  根据模块和用户编码查询参数
	 *  findConditionByMoudkeCode.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param moudkeCode
	 *  @return 
	 *  @Date:2017年12月6日下午7:44:43
	 */
	public InvokeResult findConditionByMoudkeCode(String moudkeCode);
	/**
	 *  不同权重区间DRGs分布
	 *  loadDrgsDistributeData.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param dto
	 *  @param intervalParam
	 *  @return 
	 *  @Date:2017年12月7日上午11:06:13
	 */
	public Map<String,Object> loadDrgsDistributeData(IndexCalDTO dto, String[] intervalParam);
	
	/**
	 *  获取临床专业覆盖病组权重最大值
	 *  findWeightsExtremum.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param dto
	 *  @return 
	 *  @Date:2017年12月19日下午2:34:38
	 */
	public InvokeResult findWeightsExtremum(IndexCalDTO dto);
	

}
